Embodiments of the present invention provide a method and apparatus for firmware programming on a circuit board. More particularly, embodiments of the present invention provide methods and apparatus for firmware programming on a circuit board via a firmware field programming interface.
General purpose computers and other processing devices (hereinafter xe2x80x9ccomputing devicesxe2x80x9d) utilize a wide variety of computer programs to perform various tasks. A computer program includes a series of instructions or statements arranged in a specific sequence and written in a language executable by the processor of the computing device to achieve a certain result. Such programs include, to name just a few types, operating systems, compilers and applications.
Computer programs may be implemented in either software or firmware, each of which is executed by the hardware of the computing device. Software, as used herein, refers to those computer programs whose instructions and/or data are stored and maintained in the computing device only for so long as power continues to be supplied thereto. Such computer programs are typically semi-permanently stored on magnetic disc and downloaded for volatile storage in a random access memory (RAM) when needed by the computing device. Programming stored in this fashion must be reloaded into the RAM of the computing device each time there is a power interruption.
Firmware, on the other hand, as used herein, refers to those computer programs whose instructions and/or data are stored and maintained permanently in the computing device without the need for the continued application of power. One such computer program is the basic input/output system (BIOS). These computer programs, like the BIOS are typically stored in non-volatile read only memory (ROM), programmable read only memory (PROM) or erasable programmable read only memory (EPROM). Use of a non-volatile memory obviates the need to reload the programming into the computing device in the event of a power loss or turn-off.
Unlike software, which is relatively easily corrected or updated (for example, by means of modifying or replacing the magnetic media upon which the software is stored), once firmware is stored in the fixed ROM of the computing device it cannot be written over without removing the integrated circuit chip in which the firmware is stored or replacing the circuit board. Thus, in order to correct programming errors or install programming updates issued after the computing device is placed into general public use, the computing device itself must be returned to or serviced by a representative of the manufacturer. The replacement of the integrated circuit chip or circuit board is, however, inconvenient, expensive and time consuming. Considerable effort has accordingly been expended in discovering ways to correct and update device firmware without the need for chip replacement or hand-on access by the manufacturer to the computing device.
The development of electrically erasable programmable read only memory (EEPROM) has obviated to some extent the need for replacing memory chips storing firmware when programming corrections or upgrades are required. The EEPROM includes a read only memory device whose individual data storage locations (addresses) are erasable and reprogrammable by applying certain electrical signals to the chip. New firmware can thus be stored in the chip without removing the chip from the computing device. Unfortunately, in order to reprogram the BIOS, the motherboard must be powered on. This is a costly and inefficient way to update the BIOS.
In view of the foregoing, it can be appreciated that a substantial need exists for a method and apparatus for correcting or updating firmware without having the computer system powered or without opening the computer chassis.